package model

import (
	"time"

	"gorm.io/datatypes"
)

// Task 任务模型定义
type Task struct {
	ID         uint           `gorm:"primarykey" json:"id"`
	Biz        string         `gorm:"size:20;not null" json:"biz"`     // 业务id
	Title      string         `gorm:"size:255;not null" json:"title"`  // 任务标题
	Desc       string         `gorm:"type:text" json:"desc"`           // 任务描述
	UserId     string         `gorm:"size:50;not null" json:"user_id"` // 用户id
	Status     string         `gorm:"size:50;not null" json:"status"`  // 任务状态: pending, running, completed, failed
	Result     datatypes.JSON `gorm:"type:json" json:"result"`         // JSON格式的结果数据
	StartTime  *time.Time     `json:"start_time,omitempty"`            // 计划执行时间
	EndTime    *time.Time     `json:"end_time,omitempty"`              // 实际执行时间，可为空
	Cb         string         `json:"cb,"omitempty"`
	CreateTime time.Time      `json:"create_time"`
	UpdateTime time.Time      `json:"update_time"`
}
